PHLEGM v8 - Checkpoint 14: SuperPET firmware and NES renderer (source checkpoint)

Confirmed source defect:
- firmware.config.phlegm declares physically overlapping 6809 and 6502 CPU ROMs.
- firmware.bi formerly rejected *all* overlapping ranges, aborting SuperPET
  firmware loading before any automatic sync attempt.
- Additionally, MapLoadedFirmware mapped the secondary 6502 $F000 ROM onto the
  active 6809 reset vector, even if overlap validation was bypassed.

Changes:
- Retain the final CPU scope field from each firmware descriptor row.
- Permit overlapping address ranges only for disjoint primary/secondary scopes.
- Map primary/shared ROM only while the compiled primary CPU is active.
- Report individual missing firmware images and networking prerequisites.
- NES background rasterizer precomputes scroll-to-tile coordinates once per
  256-pixel row group instead of redundant modulo/division per pixel.
- No PPU/APU Skip auto-enabling. Timing and APU/PPU semantics remain intact.

Static regression: tools/Validate-SuperPET-NES-Checkpoint-14.py

IMPORTANT: No FreeBASIC compiler or Wine runtime was present in this execution
container. Therefore no real native compilation, runtime test, firmware HTTP
fetch, SuperPET 6809 boot, or 60-FPS benchmark was possible. NES optimization
is not a verified 60-FPS fix. The SuperPET secondary-CPU execution/switching
path also needs implementation/testing: current runtime compiles the primary CPU.
This checkpoint must be built and exercised, not considered hand-tested.

No copyrighted ROM images are bundled.
